home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 June / PersonalComputerWorld-June2009-CoverdiscCD.iso / Software / Freeware / Adobe AIR 1.5.1 / AdobeAIRInstaller.exe / setup.swf / scripts / mx / skins / halo / ButtonSkin.as < prev    next >
Encoding:
Text File  |  2009-02-12  |  7.3 KB  |  180 lines

  1. package mx.skins.halo
  2. {
  3.    import flash.display.GradientType;
  4.    import mx.core.IButton;
  5.    import mx.core.UIComponent;
  6.    import mx.core.mx_internal;
  7.    import mx.skins.Border;
  8.    import mx.styles.StyleManager;
  9.    import mx.utils.ColorUtil;
  10.    
  11.    use namespace mx_internal;
  12.    
  13.    public class ButtonSkin extends Border
  14.    {
  15.       mx_internal static const VERSION:String = "3.0.0.0";
  16.       
  17.       private static var cache:Object = {};
  18.       
  19.       public function ButtonSkin()
  20.       {
  21.          super();
  22.       }
  23.       
  24.       private static function calcDerivedStyles(param1:uint, param2:uint, param3:uint) : Object
  25.       {
  26.          var _loc5_:Object = null;
  27.          var _loc4_:String = HaloColors.getCacheKey(param1,param2,param3);
  28.          if(!cache[_loc4_])
  29.          {
  30.             _loc5_ = cache[_loc4_] = {};
  31.             HaloColors.addHaloColors(_loc5_,param1,param2,param3);
  32.          }
  33.          return cache[_loc4_];
  34.       }
  35.       
  36.       override public function get measuredWidth() : Number
  37.       {
  38.          return UIComponent.DEFAULT_MEASURED_MIN_WIDTH;
  39.       }
  40.       
  41.       override public function get measuredHeight() : Number
  42.       {
  43.          return UIComponent.DEFAULT_MEASURED_MIN_HEIGHT;
  44.       }
  45.       
  46.       override protected function updateDisplayList(param1:Number, param2:Number) : void
  47.       {
  48.          var _loc16_:Number = NaN;
  49.          var _loc17_:Array = null;
  50.          var _loc18_:Array = null;
  51.          var _loc19_:Array = null;
  52.          var _loc20_:Array = null;
  53.          var _loc21_:Array = null;
  54.          var _loc22_:Array = null;
  55.          super.updateDisplayList(param1,param2);
  56.          var _loc3_:uint = getStyle("borderColor");
  57.          var _loc4_:Number = getStyle("cornerRadius");
  58.          var _loc5_:Array = getStyle("fillAlphas");
  59.          var _loc6_:Array = getStyle("fillColors");
  60.          StyleManager.getColorNames(_loc6_);
  61.          var _loc7_:Array = getStyle("highlightAlphas");
  62.          var _loc8_:uint = getStyle("themeColor");
  63.          var _loc9_:Object = calcDerivedStyles(_loc8_,_loc6_[0],_loc6_[1]);
  64.          var _loc10_:Number = ColorUtil.adjustBrightness2(_loc3_,-50);
  65.          var _loc11_:Number = ColorUtil.adjustBrightness2(_loc8_,-25);
  66.          var _loc12_:Boolean = false;
  67.          if(parent is IButton)
  68.          {
  69.             _loc12_ = Boolean(IButton(parent).emphasized);
  70.          }
  71.          var _loc13_:Number = Math.max(0,_loc4_);
  72.          var _loc14_:Number = Math.max(0,_loc4_ - 1);
  73.          var _loc15_:Number = Math.max(0,_loc4_ - 2);
  74.          graphics.clear();
  75.          switch(name)
  76.          {
  77.             case "selectedUpSkin":
  78.             case "selectedOverSkin":
  79.                drawRoundRect(0,0,param1,param2,_loc13_,[_loc8_,_loc11_],1,verticalGradientMatrix(0,0,param1,param2));
  80.                drawRoundRect(1,1,param1 - 2,param2 - 2,_loc14_,[_loc6_[1],_loc6_[1]],1,verticalGradientMatrix(0,0,param1 - 2,param2 - 2));
  81.                break;
  82.             case "upSkin":
  83.                _loc17_ = [_loc6_[0],_loc6_[1]];
  84.                _loc18_ = [_loc5_[0],_loc5_[1]];
  85.                if(_loc12_)
  86.                {
  87.                   drawRoundRect(0,0,param1,param2,_loc13_,[_loc8_,_loc11_],1,verticalGradientMatrix(0,0,param1,param2),GradientType.LINEAR,null,{
  88.                      "x":2,
  89.                      "y":2,
  90.                      "w":param1 - 4,
  91.                      "h":param2 - 4,
  92.                      "r":_loc4_ - 2
  93.                   });
  94.                   drawRoundRect(2,2,param1 - 4,param2 - 4,_loc15_,_loc17_,_loc18_,verticalGradientMatrix(2,2,param1 - 2,param2 - 2));
  95.                   drawRoundRect(2,2,param1 - 4,(param2 - 4) / 2,{
  96.                      "tl":_loc15_,
  97.                      "tr":_loc15_,
  98.                      "bl":0,
  99.                      "br":0
  100.                   },[16777215,16777215],_loc7_,verticalGradientMatrix(1,1,param1 - 2,(param2 - 2) / 2));
  101.                }
  102.                else
  103.                {
  104.                   drawRoundRect(0,0,param1,param2,_loc13_,[_loc3_,_loc10_],1,verticalGradientMatrix(0,0,param1,param2),GradientType.LINEAR,null,{
  105.                      "x":1,
  106.                      "y":1,
  107.                      "w":param1 - 2,
  108.                      "h":param2 - 2,
  109.                      "r":_loc4_ - 1
  110.                   });
  111.                   drawRoundRect(1,1,param1 - 2,param2 - 2,_loc14_,_loc17_,_loc18_,verticalGradientMatrix(1,1,param1 - 2,param2 - 2));
  112.                   drawRoundRect(1,1,param1 - 2,(param2 - 2) / 2,{
  113.                      "tl":_loc14_,
  114.                      "tr":_loc14_,
  115.                      "bl":0,
  116.                      "br":0
  117.                   },[16777215,16777215],_loc7_,verticalGradientMatrix(1,1,param1 - 2,(param2 - 2) / 2));
  118.                }
  119.                break;
  120.             case "overSkin":
  121.                if(_loc6_.length > 2)
  122.                {
  123.                   _loc19_ = [_loc6_[2],_loc6_[3]];
  124.                }
  125.                else
  126.                {
  127.                   _loc19_ = [_loc6_[0],_loc6_[1]];
  128.                }
  129.                if(_loc5_.length > 2)
  130.                {
  131.                   _loc20_ = [_loc5_[2],_loc5_[3]];
  132.                }
  133.                else
  134.                {
  135.                   _loc20_ = [_loc5_[0],_loc5_[1]];
  136.                }
  137.                drawRoundRect(0,0,param1,param2,_loc13_,[_loc8_,_loc11_],1,verticalGradientMatrix(0,0,param1,param2),GradientType.LINEAR,null,{
  138.                   "x":1,
  139.                   "y":1,
  140.                   "w":param1 - 2,
  141.                   "h":param2 - 2,
  142.                   "r":_loc4_ - 1
  143.                });
  144.                drawRoundRect(1,1,param1 - 2,param2 - 2,_loc14_,_loc19_,_loc20_,verticalGradientMatrix(1,1,param1 - 2,param2 - 2));
  145.                drawRoundRect(1,1,param1 - 2,(param2 - 2) / 2,{
  146.                   "tl":_loc14_,
  147.                   "tr":_loc14_,
  148.                   "bl":0,
  149.                   "br":0
  150.                },[16777215,16777215],_loc7_,verticalGradientMatrix(1,1,param1 - 2,(param2 - 2) / 2));
  151.                break;
  152.             case "downSkin":
  153.             case "selectedDownSkin":
  154.                drawRoundRect(0,0,param1,param2,_loc13_,[_loc8_,_loc11_],1,verticalGradientMatrix(0,0,param1,param2));
  155.                drawRoundRect(1,1,param1 - 2,param2 - 2,_loc14_,[_loc9_.fillColorPress1,_loc9_.fillColorPress2],1,verticalGradientMatrix(1,1,param1 - 2,param2 - 2));
  156.                drawRoundRect(2,2,param1 - 4,(param2 - 4) / 2,{
  157.                   "tl":_loc15_,
  158.                   "tr":_loc15_,
  159.                   "bl":0,
  160.                   "br":0
  161.                },[16777215,16777215],_loc7_,verticalGradientMatrix(1,1,param1 - 2,(param2 - 2) / 2));
  162.                break;
  163.             case "disabledSkin":
  164.             case "selectedDisabledSkin":
  165.                _loc21_ = [_loc6_[0],_loc6_[1]];
  166.                _loc22_ = [Math.max(0,_loc5_[0] - 0.15),Math.max(0,_loc5_[1] - 0.15)];
  167.                drawRoundRect(0,0,param1,param2,_loc13_,[_loc3_,_loc10_],0.5,verticalGradientMatrix(0,0,param1,param2),GradientType.LINEAR,null,{
  168.                   "x":1,
  169.                   "y":1,
  170.                   "w":param1 - 2,
  171.                   "h":param2 - 2,
  172.                   "r":_loc4_ - 1
  173.                });
  174.                drawRoundRect(1,1,param1 - 2,param2 - 2,_loc14_,_loc21_,_loc22_,verticalGradientMatrix(1,1,param1 - 2,param2 - 2));
  175.          }
  176.       }
  177.    }
  178. }
  179.  
  180.